import { Elysia } from 'elysia';
import {
  getCases,
  getCase,
  createCase,
  updateCase,
  deleteCase,
  getIndustries,
  getTags,
  getTag,
  createTag,
  updateTag,
  deleteTag
} from '../controllers/caseController';
import { guestAccessMiddleware } from '../middleware/auth';

export const caseRoutes = new Elysia({ prefix: '/cases' })
  // 公开路由 - 前台展示
  .get('/', getCases)
  .get('/industries', getIndustries)
  .get('/tags', getTags)
  .get('/tags/:id', getTag)
  .get('/:id', getCase)
  
  // 需要登录权限的路由（游客可查看，管理员可编辑）
  .use(guestAccessMiddleware())
  .get('/admin', getCases) // 后台查看案例列表
  .get('/admin/:id', getCase) // 后台查看案例详情
  .post('/', createCase)
  .put('/:id', updateCase)
  .delete('/:id', deleteCase)
  
  // 标签管理路由（游客可查看，管理员可编辑）
  .get('/admin/tags', getTags) // 后台查看标签列表
  .get('/admin/tags/:id', getTag) // 后台查看标签详情
  .post('/tags', createTag)
  .put('/tags/:id', updateTag)
  .delete('/tags/:id', deleteTag);